云虚拟主机的CPU或内存使用率过高时会导致网站无法正常访问,本文介绍这种情况的可能原因和解决方案。
问题现象
在独享云虚拟主机上成功搭建网站并正常运行一段时间后,访问网站时出现无法正常访问的现象。
可能原因
云虚拟主机的站点在网站运行过程中可能被恶意攻击,或者主机站点的配置文件(例如.htaccess文件)配置错误时,使得云虚拟主机的CPU使用率或内存使用率过高,从而导致网站无法正常访问。
引起网站无法正常访问的原因较多,本文以主机的CPU或内存使用率过高原因为例进行说明。更多信息,请参见网站访问问题。
解决方案
本文的解决方案仅适用于独享云虚拟主机,以普通版Linux操作系统独享云虚拟主机为例进行详细介绍。
- 登录云虚拟主机管理页面。
找到站点无法访问的独享云虚拟主机,单击对应操作列的管理。
- 在左侧导航栏,单击主机信息。
在监控信息区域,查看云虚拟主机的CPU或内存满载(即使用率为100%)时的时间段或者时间点。
本图示以云虚拟主机的CPU使用率达到100%为例,您可以将鼠标移动到CPU监控线上即可看到CPU使用率达到100%时对应的时间点为2023年2月15日10:05:00。
在监控信息区域的按来源IP统计页签下,将鼠标移动到CPU满载时的时间点,即可查看并记录连接数过高的IP地址或IP网段(即存在异常的IP地址或IP网段)。
(可选)屏蔽异常IP地址。
在左侧导航栏,单击访问控制。
在IP屏蔽页签下,单击添加IP。
在添加IP页面的IP区域,输入待屏蔽的异常IP地址,然后单击确认。
异常IP地址添加成功后,您可以在IP地址列表中查看到已添加的IP地址。
(可选)限制每个异常IP网段的并发连接数。
在左侧导航栏,单击访问控制。
单击连接数限制页签。
在连接数限制设置区域根据连接数限制状态的显示结果执行以下步骤:
如果显示关闭 ,单击[开启限制]。
如果显示开启 ,单击[修改限制]。
在弹出的开启限制或修改限制页面,修改并发连接数限制,并单击高级配置后修改连接掩码为24。
例如,如果并发连接数限制设置为10,连接掩码设置为24时,表示每个C段源IP最多支持10个连接。
单击确认。
(可选)限制每个异常IP地址的并发连接数。
在左侧导航栏,单击访问控制。
单击连接数限制页签。
在连接数限制设置区域,单击[修改限制]。
在弹出的修改限制页面,修改并发连接数限制,并单击高级配置后修改连接掩码为32。
例如,如果并发连接数限制设置为10,连接掩码设置为32时,表示每个源IP最多支持10个连接。
单击确认。
在左侧导航栏,单击站点信息,在服务器监控区域查看CPU使用率和内存使用率。
如果查看云虚拟主机的CPU使用率和内存使用率仍然过高,请继续执行步骤10。
如果查看云虚拟主机的CPU使用率和内存使用率在正常范围内,操作结束。
说明关于云虚拟主机的CPU使用率和内存使用率是否过高或正常,需要您根据实际业务自行评估。
(可选)检查.htaccess文件是否配置错误,并根据实际需求进行修改。
以检查普通版Linux操作系统独享云虚拟主机.htaccess文件的配置为例,具体操作如下所示:
在左侧导航栏,选择 。
单击站点根目录,找到.htaccess文件后,然后单击对应操作列的查看。
检查并修改.htaccess文件。
例如.htaccess文件的具体内容如下所示:
Options+FollowSymLinks IndexIgnore*/* RewriteEngine on # 目录如果存在,直接访问 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 如果目录不存在,则跳转到index.php RewriteRule.index.php
检查上述.htaccess文件,发现
RewriteRule.index.php
配置项会将所有不存在的访问跳转到index.php
中,造成网站访问的持续增多。基于该原因,您可以根据实际需求对RewriteRule.index.php
配置项进行相应修改,或将其注释。
重要为了有效预防因云虚拟主机的CPU或内存使用率满载而导致网站无法正常访问,建议您在云虚拟主机的CPU或内存使用率满载前,前往主机信息页面设置自定义监控报警功能。当云虚拟主机的CPU或内存使用率超过报警阈值,您可以在收到监控报警提示时根据本文解决方案进行操作。关于设置自定义监控报警功能的更多信息,请参见获取云虚拟主机的主机信息和站点信息。